﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;

namespace TestImport.Model.DatabaseRepositories
{
    public abstract partial class DatabaseRepository
    {
        /**************************/
        /* Leerling_Leerling_Boek */
        /**************************/

        public DataTable LeerlingBoek_Leerling_GetData()
        {
            return defaultExecuteReaderDataTable(CommandType.Text, "SELECT leerlingBoekID, boekID, leerlingID, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, rekeningID, rekeningRetourID, boeklijstItemID, status, naam, groepCode, categorieCode, isbnNr, titel FROM LeerlingBoek_Leerling_Boek");
        }

        public DataTable LeerlingBoek_Leerling_CountByBoekID(int boekID)
        {
            DataTable dt = new DataTable();
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(1);
                dbManager.AddParameters(0, "@boekID", boekID);
                dbManager.ExecuteReader(CommandType.Text, "SELECT COUNT(*) FROM LeerlingBoek_Leerling_Boek WHERE boekID = @boekID");
                dt.Load(dbManager.DataReader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
            return dt;
        }

        public DataTable LeerlingBoek_Leerling_CountByLeerlingID(int leerlingID)
        {
            DataTable dt = new DataTable();
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(1);
                dbManager.AddParameters(0, "@leerlingID", leerlingID);
                dbManager.ExecuteReader(CommandType.Text, "SELECT COUNT(*) FROM LeerlingBoek_Leerling_Boek WHERE leerlingID = @leerlingID");
                dt.Load(dbManager.DataReader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
            return dt;
        }

        public DataTable LeerlingBoek_Leerling_GetDataByBoekID(int boekID)
        {
            DataTable dt = new DataTable();
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(1);
                dbManager.AddParameters(0, "@boekID", boekID);
                dbManager.ExecuteReader(CommandType.Text, "SELECT leerlingBoekID, boekID, leerlingID, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, rekeningID, rekeningRetourID, boeklijstItemID, status, naam, groepCode, categorieCode, isbnNr, titel FROM LeerlingBoek_Leerling_Boek WHERE (boekID = @boekID)");
                dt.Load(dbManager.DataReader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
            return dt;
        }

        public DataTable LeerlingBoek_Leerling_GetDataByLeerlingID(int leerlingID)
        {
            DataTable dt = new DataTable();
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(1);
                dbManager.AddParameters(0, "@leerlingID", leerlingID);
                dbManager.ExecuteReader(CommandType.Text, "SELECT leerlingBoekID, boekID, leerlingID, datumBestelling, datumAfhaling, datumAnnulatie, datumRetour, rekeningID, rekeningRetourID, boeklijstItemID, status, naam, groepCode, categorieCode, isbnNr, titel FROM LeerlingBoek_Leerling_Boek WHERE (leerlingID = @leerlingID)");
                dt.Load(dbManager.DataReader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
            return dt;
        }

        public void LeerlingBoek_Leerling_UpdateDatumAnnulatie(DateTime datumAnnulatie, int leerlingBoekID)
        {
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(2);
                dbManager.AddParameters(0, "@datumAnnulatie", datumAnnulatie);
                dbManager.AddParameters(1, "@leerlingBoekID", leerlingBoekID);
                dbManager.ExecuteNonQuery(CommandType.Text, "UPDATE LeerlingBoek SET datumAnnulatie = @datumAnnulatie WHERE (leerlingBoekID = @leerlingBoekID)");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
        }

        public void LeerlingBoek_Leerling_UpdateDatumRetour(DateTime datumRetour, int leerlingBoekID)
        {
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(2);
                dbManager.AddParameters(0, "@datumRetour", datumRetour);
                dbManager.AddParameters(1, "@leerlingBoekID", leerlingBoekID);
                dbManager.ExecuteNonQuery(CommandType.Text, "UPDATE LeerlingBoek SET datumRetour = @datumRetour WHERE (leerlingBoekID = @leerlingBoekID)");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
        }

        public void LeerlingBoek_Leerling_UpdateRekeningOpNull(int leerlingBoekID)
        {
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(1);
                dbManager.AddParameters(0, "@leerlingBoekID", leerlingBoekID);
                dbManager.ExecuteNonQuery(CommandType.Text, "UPDATE LeerlingBoek SET rekeningID = NULL WHERE (leerlingBoekID = @leerlingBoekID)");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
        }

        public void LeerlingBoek_Leerling_UpdateRekeningRetourID(int rekeningRetourID, int leerlingBoekID)
        {
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(2);
                dbManager.AddParameters(0, "@rekeningRetourID", rekeningRetourID);
                dbManager.AddParameters(1, "@leerlingBoekID", leerlingBoekID);
                dbManager.ExecuteNonQuery(CommandType.Text, "UPDATE LeerlingBoek SET rekeningRetourID = @rekeningRetourID WHERE (leerlingBoekID = @leerlingBoekID)");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
        }

        public void LeerlingBoek_Leerling_UpdateStatus(bool status, int leerlingBoekID)
        {
            try
            {
                dbManager.Open();
                dbManager.CreateParameters(2);
                dbManager.AddParameters(0, "@status", status);
                dbManager.AddParameters(1, "@leerlingBoekID", leerlingBoekID);
                dbManager.ExecuteNonQuery(CommandType.Text, "UPDATE LeerlingBoek SET status = @status WHERE (leerlingBoekID = @leerlingBoekID)");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
            finally
            {
                dbManager.Dispose();
            }
        }

    }
}
